package LeetCode1;

import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Queue;

/**
 * 数组中的第k个最大元素
 * @author 是阿秋啊
 * @date 2022/03/21 11:50
 **/
public class Num215 {
    public int findKthLargest(int[] nums, int k) {
        //方法一：直接调用内部排序
//        Arrays.sort(nums);
//        return nums[nums.length - k];
        //方法二：TopK问题
        Queue<Integer> queue = new PriorityQueue<>();
        for (int i : nums) {
            if (queue.size() < k) {
                queue.offer(i);
            } else {
                if (queue.peek() < i) {
                    queue.poll();
                    queue.offer(i);
                }
            }
        }
        return queue.peek();
    }
}
